import { NgModule } from '@angular/core';
import { RouterModule } from "@angular/router";
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';
import { MdlModule } from '@angular-mdl/core';
import { CommonService } from '../common/service/common.service';
import {
    TreeModule, BreadcrumbModule, ToolbarModule, InputTextModule, SelectButtonModule,
    InputTextareaModule, PanelModule, ButtonModule, AutoCompleteModule, InputSwitchModule,
    ConfirmDialogModule, ConfirmationService, CarouselModule, TabViewModule, PanelMenuModule, SharedModule,
    ToggleButtonModule, DropdownModule, CheckboxModule, FieldsetModule
} from 'primeng/primeng';
import { ToastModule } from 'primeng/toast';
import { FileUploadModule } from 'primeng/fileupload';
import { ScrollPanelModule } from 'primeng/scrollpanel';
import { OverlayPanelModule } from 'primeng/overlaypanel';
import { RadioButtonModule } from 'primeng/radiobutton';
import { TooltipModule } from 'primeng/tooltip';
import { MultiSelectModule } from 'primeng/multiselect';
import { DynamicDialogModule } from 'primeng/dynamicdialog';
import { DialogService } from 'primeng/api';
import { SplitButtonModule } from 'primeng/splitbutton';
import { CalendarModule } from 'primeng/calendar';
import { DataViewModule } from 'primeng/dataview';
import { TableModule } from 'primeng/table';
import { QkSharedModule } from '../common/module/qkshare.module';
import { FreeflowShareModule } from '../freeflow/freeflowshare.module';
import { FormShareModule } from '../form/formshare.module';
import { CustomComponent } from './custom.component';
import { BasicComponent } from './config/basic.component';
import { FieldsComponent } from './config/fields/fields.component';
import { BizAddComponent } from './config/biz/biz-add.component';
import { BaseInfoComponent } from './config/baseinfo/baseinfo.component';
import { TaskListShareModule } from '../tasklist/tasklistshare.module';
import { CustomTaskListComponent } from './tasklist/custom-tasklist.component';
import { CustomEditComponent } from './tasklist/tabs/edit/custom-edit.component';
import { CustomService } from './custom.service';
import { customRoutes } from './custom.routes';
@NgModule({
    imports: [
        FormsModule,
        ReactiveFormsModule,
        CommonModule,
        MdlModule,
        TreeModule,
        BreadcrumbModule,
        ToolbarModule,
        PanelModule,
        ButtonModule,
        DropdownModule,
        AutoCompleteModule,
        InputTextModule,
        InputTextareaModule,
        InputSwitchModule,
        ToggleButtonModule,
        TabViewModule,
        CarouselModule,
        PanelMenuModule,
        SharedModule,
        SelectButtonModule,
        DropdownModule,
        TableModule,
        CheckboxModule,
        QkSharedModule,
        DataViewModule,
        ConfirmDialogModule,
        CalendarModule,
        SplitButtonModule,
        DynamicDialogModule,
        TooltipModule,
        MultiSelectModule,
        OverlayPanelModule,
        RadioButtonModule,
        ScrollPanelModule,
        FileUploadModule,
        ToastModule,
        FieldsetModule,
        FreeflowShareModule,
        FormShareModule,
        TaskListShareModule,
        RouterModule.forChild(customRoutes)
    ],
    declarations: [
        CustomComponent,
        BaseInfoComponent,
        BasicComponent,
        FieldsComponent,
        BizAddComponent,
        CustomTaskListComponent,
        CustomEditComponent
    ],
    entryComponents: [
        BizAddComponent
    ],
    exports: [
    ],
    providers: [
        CommonService,
        DialogService,
        ConfirmationService,
        CustomService
    ]
})
export class CustomModule { }